home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / misc / amag / am9305b.lha / Tips & Tricks / NewBorder.c < prev    next >
C/C++ Source or Header  |  1993-03-23  |  2KB  |  74 lines

  1. /*
  2.  * DrawGadgetBorder.c demonstriert die Funktion
  3.  * DrawGadgetBorder()
  4.  * Aufruf mit DICE:
  5.  * dcc DrawGadgetBorder.c -o DrawGadgetBorder
  6.  */
  7.  
  8. #include <intuition/intuition.h>
  9.  
  10. struct IntuitionBase *IntuitionBase;
  11. struct Window        *Window;
  12. struct IntuiMessage  *IntuiMessage;
  13. struct IntuiText GadgetText={1,0,0,2,2,0,"Gadget",0};
  14. struct Gadget Gadget={ 0,50,29,52,12,GADGHCOMP,
  15.         RELVERIFY,BOOLGADGET,0,0,&GadgetText,0,0,0,0};
  16. struct NewWindow NewWindow={ 120,30,160,60,0,1,
  17.         GADGETUP,WINDOWDRAG | ACTIVATE | WINDOWDEPTH,
  18.         &Gadget,0,0,0,0,0,0,0,0,WBENCHSCREEN};
  19. SHORT XY[10];
  20. /* Gadget-Rahmen */
  21. struct Border GadgetBorder={0,0,1,0,0,5,XY,0};
  22.  
  23. /* Zeichnet eine Doppelumrandung für das
  24.  * angegebene Gadget */
  25. void DrawGadgetBorder(struct Window *Window,
  26.                       struct Gadget *Gadget)
  27. {
  28.   SHORT L,T,W,H;
  29.   L=Gadget->LeftEdge; /* Größe des Gadgets auslesen */
  30.   T=Gadget->TopEdge;
  31.   W=Gadget->Width;
  32.   H=Gadget->Height;
  33.   /* Koordinaten-Feld für die 1. Umrandung erstellen */
  34.   XY[0]=-1; XY[1]=-1;
  35.   XY[2]=W;  XY[3]=-1;
  36.   XY[4]=W;  XY[5]=H;
  37.   XY[6]=-1; XY[7]=H;
  38.   XY[8]=-1; XY[9]=-1;
  39.   /* 1. Umrandung zeichnen */
  40.   DrawBorder(Window->RPort,&GadgetBorder,L,T);
  41.  
  42.   /* Koordinaten-Feld für die 2. Umrandung erstellen */
  43.   XY[0]=-3;  XY[1]=-3;
  44.   XY[2]=W+2; XY[3]=-3;
  45.   XY[4]=W+2; XY[5]=H+2;
  46.   XY[6]=-3;  XY[7]=H+2;
  47.   XY[8]=-3;  XY[9]=-3;
  48.   /* 2. Umrandung zeichnen */
  49.   DrawBorder(Window->RPort,&GadgetBorder,L,T);
  50. }
  51.  
  52. void main()
  53. {
  54.   IntuitionBase=(struct IntuitionBase *)
  55.                    OpenLibrary("intuition.library",0);
  56.   if( IntuitionBase )
  57.   {
  58.    /* Fenster öffnen */
  59.    Window=(struct Window *)OpenWindow(&NewWindow);
  60.    if( Window )
  61.    {
  62.     /* Doppel-Border zeichnen */
  63.     DrawGadgetBorder(Window,&Gadget);
  64.     /* Warten auf Gadget-Klick */
  65.     WaitPort(Window->UserPort);
  66.     IntuiMessage=(APTR)GetMsg(Window->UserPort);
  67.     ReplyMsg(IntuiMessage);
  68.     /* Fenster wieder schließen */
  69.     CloseWindow(Window);
  70.    }
  71.    CloseLibrary(IntuitionBase);
  72.   }
  73. }
  74.